// 찜리스트에서 회원의 상세 정보를 보는 자바스크립트

var connectstate=""; // 연결상태를 저장하기 위한 변수를 생성한다.
					 // 여러 함수에서도 참조하기 때문에 global variable 로 선언

$(document).ready(function(){
	
	var presentListtype = $("input[name=listtype]").val();
	//현재의 라디오버튼이 체크되어 있는 것이 무엇인지 확인한다.

	$("#selectedList_student_table_type_t").hide();
	// 선생님/수업 테이블은 숨긴다. 이후에 라디오버튼이 변경되면 보여준다.
	
	$(".table_inner_form").hide();// 초기 상태에 상세정보를 나타내는 영역을 숨긴다.
	
	var dataString = "id="+$("input[name=id]").val()
	+"&membertype="+$("input[name=membertype]").val();
	
	/**
	 * 라디오버튼이 변경되었을 때 발생하는 이벤트
	 */
	$("input[name=listtype]").change(function(){
		$("#selectedList_student_table_type_s").toggle();
		$("#selectedList_student_table_type_t").toggle();
		
		presentListtype = $(this).val();
		
		dataString =  "id="+$("input[name=id]").val()
		+"&membertype="+$("input[name=membertype]").val()+"&listtype="+presentListtype;
		
		$.ajax({
			type:"post",
			url:"switchSelectedList.do",
			dataType:"json",
			data:dataString,
			success:function(jsonData){
				$("#selectedList_student_table_type_t_accordion").children().remove(); 
				var tagString="";
				if(jsonData != ""){
					$.each(jsonData.t,function(index,list){
						tagString+="<div class='selectedList_student_table_type_accordion_header'>"+
						"<div class='selectedList_student_table_type_lessonno'>"+list.lessonBoardVO.lessonno+"</div>"+
						"<div class='selectedList_student_table_type_title'>"+list.lessonBoardVO.title+"</div>"+
						"<div class='selectedList_student_table_type_name'>"+list.teacherVO.name+
						"<input type='hidden' name='teacherid' value='"+list.teacherVO.id+
						"'><input type='hidden' name='teachermembertype' value='t'></div>"+
						"<div class='selectedList_student_table_type_gender'>"+list.teacherVO.gender+"</div>"+
						"<div class='selectedList_student_table_type_university'>"+list.teacherVO.university+"</div>"+
						"<div class='selectedList_student_table_type_availablestudent'>"+list.teacherVO.availablestudent+"</div>"+
						"</div><div class='table_inner_form'></div>";
					}); 
					$("#selectedList_student_table_type_t_accordion").append(tagString); 
					$(".table_inner_form").hide(); 
					
				}// if 문
			}//success
		});// ajax
	});// change
	
	/**
	 * 수업을 찜한 선생님의 이름을 클릭했을 때 발생하는 이벤트
	 */
	$("#selectedList_student_table_type_t_accordion").on("click",
				".selectedList_student_table_type_name",function(){
			
			var nametable = $(this);
			var detail = nametable.parent().next();
			var lessonno = nametable.prev().prev().text();
		
			dataString = "studentid="+$("input[name=id]").val()+
							"&lessonno="+lessonno;
		
			getConnectstate({
								str :dataString,
								callback:function(result){
									connectstate = result;
									// 상세정보를 가져오기 전에 수업의 연결상태를 먼저 확인한다.
									
									dataString = "id="+nametable.children("input[name=teacherid]").val()
													+"&membertype="+nametable.children("input[name=teachermembertype]").val();
												
									//상세정보를 보여주는 창을 띄운다. 그에 필요한 정보를 가져오는 함수.
									detailView(dataString,detail,presentListtype);
								}
							});
			
			
			
			
			detail.on("click","input[name=acceptSelected]",function(){
				var dataString="studentid="+$("input[name=id]").val()
								+"&classteacherid="+nametable.children("input[name=teacherid]").val()
								+"&lessonno="+lessonno;
				var acceptBtn = $(this);
				
				$.ajax({
					type:"post",
					url:"acceptSelectedList.do",
					dataType:"json",
					data:dataString,
					success:function(jsonData){
						if(jsonData.connectstate == "연결완료"){
							acceptBtn.prop("name","rejectSelected").prop("value","거절");
						}
					}
				});
			}).on("click","input[name=rejectSelected]",function(){
				var dataString="studentid="+$("input[name=id]").val()
								+"&classteacherid="+nametable.children("input[name=teacherid]").val()
								+"&lessonno="+lessonno;
				var rejectBtn = $(this);
				
				$.ajax({
					type:"post",
					url:"rejectSelectedList.do",
					dataType:"json",
					data:dataString,
					success:function(jsonData){
						if(jsonData.connectstate == "연결가능"){
							rejectBtn.prop("name","acceptSelected").prop("value","수락");
						}
					}
				});
			});//click
			
			
		}).on("mouseenter",
				".selectedList_student_table_type_name",function(){
			$(this).css("background-color","white");
		}).on("mouseleave",
				".selectedList_student_table_type_name",function(){
			$(this).css("background-color","#E6E6E6");
		});// 이벤트
	
	/**
	 * 학생이 찜한 선생님 이름을 클릭했을 때 발생하는 이벤트
	 */
	$(".selectedList_student_table_type_accordion_header").on("click",
			".selectedList_student_table_type_name",function(){
	
		var nametable = $(this);
		var detail = nametable.parent().next();
		
		dataString = "id="+nametable.children("input[name=teacherid]").val()
		+"&membertype="+nametable.children("input[name=teachermembertype]").val();
		
		detailView(dataString,detail,presentListtype);
		
		detail.on("click","input[name=deleteSelected]",function(){
			var dataString="id="+$("input[name=id]").val()
							+"&membertype="+$("input[name=membertype]").val()
							+"&listtype="+presentListtype;
			location.href = "deleteSelectedListVO.do?"+dataString;
		});//click
		
	}).on("mouseenter",
			".selectedList_student_table_type_name",function(){
		$(this).css("background-color","white");
	}).on("mouseleave",
			".selectedList_student_table_type_name",function(){
		$(this).css("background-color","#E6E6E6");
	});// 이벤트
	 
});//ready()

function getConnectstate(data){
	var result="";
	$.ajax({ // 선택한 선생님이 찜한 수업의 연결상태가 어떤지 확인하는 함수
		type:"post",
		url:"getConnectstate.do",
		dataType:"json",
		data:data.str,
		success:function(jsonData){
			result=jsonData.connectstate;
			//alert("function:"+connectstate);
			data.callback(result);
		}
	});
	
}

function detailView(dataString,detail,presentListtype){
	if(detail.css("display")=="none"){
		$.ajax({
			type:"post",
			url:"detailViewTeacher.do",
			dataType:"json",
			data:dataString,
			success:function(jsonData){
				// 상세정보를 넣기 전에 초기화를 한다. css display상태가 none 되도록, hide()와 같은 효과
				$(".table_inner_form").css("display","none").children().remove(); 
				var tagString="";
				if(jsonData != ""){
						if(presentListtype=="s"){
							tagString=tagString_listtype_s(jsonData,tagString);
						}else if(presentListtype=="t"){
							tagString=tagString_listtype_t(jsonData,tagString);
						}
				}
				detail.show();
				detail.append(tagString);
			}//success
		});// ajax
		//detail.show();
		$("div.selectedList_student_container_default").removeClass("selectedList_student_container_default").addClass("selectedList_student_container_detail");
	}else{
		// ajax로 받아온 내용은 지우지 않고 display 속성만 변경해준다.
		detail.hide();
		$("div.selectedList_student_container_detail").removeClass("selectedList_student_container_detail").addClass("selectedList_student_container_default");
	}
}
function tagString_listtype_s(jsonData,tagString){
	tagString+="<div id='detailbasic'>"+
	"<div id='detailintro' class='detailitem'>"+
	"<div class='detaillabel'>소개</div>"+
	 "<div class='detailInfo'>"+jsonData.intro+"</div>"+
	"</div><div class='detailitem'><div class='detaillabel'>전화번호</div><div class='detailInfo'>" +
	jsonData.tel+"</div></div><div class='detailitem'><div class='detaillabel'>이메일 주소</div>"+
	 "<div class='detailInfo'>"+jsonData.email+"</div></div></div>"+
	 "<div id='detailappend'><div class='detailitem'><div class='detaillabel'>희망 학생성별</div>"+
	"<div class='detailInfo'>"+jsonData.hopegender+"</div></div>" +
	"<div class='detailitem'><div class='detaillabel'>수업 가능한 시간</div><div>"+
			"<div class='detailInfo'>"+jsonData.availableday+"</div>"+
			 "<div class='detailInfo'>"+jsonData.availabletime+"</div>"+
		"</div></div></div>"+
		"<div class='inputButton'>"+
		"<input type='button' name='deleteSelected' value='삭제'></div>";
	return tagString;
}

function tagString_listtype_t(jsonData,tagString){
	tagString+="<div id='detailbasic'>"+
	"<div id='detailintro' class='detailitem'>"+
	"<div class='detaillabel'>소개</div>"+
	 "<div class='detailInfo'>"+jsonData.intro+"</div>"+
	"</div><div class='detailitem'><div class='detaillabel'>전화번호</div><div class='detailInfo'>" +
	jsonData.tel+"</div></div><div class='detailitem'><div class='detaillabel'>이메일 주소</div>"+
	 "<div class='detailInfo'>"+jsonData.email+"</div></div></div>"+
"<div id='detailappend'><div class='detailitem'><div class='detaillabel'>희망 학생성별</div>"+
	"<div class='detailInfo'>"+jsonData.hopegender+"</div></div>" +
"<div class='detailitem'><div class='detaillabel'>희망 지역</div><div class='detailInfo'>" +jsonData.hoperegion+"</div></div>" +
"<div class='detailitem'><div class='detaillabel'>희망 과목</div><div class='detailInfo'>" +jsonData.hopesubject+"</div></div>" +
"<div class='detailitem'><div class='detaillabel'>수업 가능한 시간</div><div>"+
			"<div class='detailInfo'>"+jsonData.availableday+"</div>"+
			 "<div class='detailInfo'>"+jsonData.availabletime+"</div>"+
		"</div></div></div>"+
		"<div class='inputButton'>"; 
	
	if(connectstate=="연결완료"){
		tagString+="<input type='button' name='rejectSelected' value='거절'>";
	}else if(connectstate=="연결가능"){
		tagString+="<input type='button' name='acceptSelected' value='수락'>";
	}
	return tagString;
}
